package model

import (
	"time"
)

// LwUser 表示用户模型，包含用户的基本信息和状态
type LwUser struct {
	ID         int64      `gorm:"primaryKey;autoIncrement;not null"`                                                                    // 主键，自动递增，非空
	Mobile     string     `gorm:"uniqueIndex;type:varchar(11);not null;comment:手机号，唯一性"`                                                // 手机号，唯一索引，varchar 类型，长度为 11，非空
	Password   string     `gorm:"type:varchar(100);not null;comment:密码"`                                                                // 密码，varchar 类型，长度为 100，非空
	Gender     string     `gorm:"type:varchar(6);not null;default:'male';comment:性别: 默认值为 male，支持 female 和 male"`                       // 性别，varchar 类型，长度为 6，默认值为 'male'，支持 female 和 male
	Status     bool       `gorm:"not null;default:0;comment:删除状态：0-正常，1-已删除"`                                                           // 删除状态，0 表示正常，1 表示已删除
	NickName   string     `gorm:"type:varchar(20);default:null;comment:昵称，最大长度为 20，可为空"`                                                // 昵称，varchar 类型，长度为 20，默认为 null，可以为空
	Birthday   *time.Time `gorm:"type:datetime;default:null;comment:生日时间"`                                                              // 生日，datetime 类型，可以为空
	Role       int        `gorm:"type:int(2);default:1;comment:用户角色: 1-普通用户，2-管理员"`                                                     // 用户角色，默认值为 1，1 表示普通用户，2 表示管理员
	CreateTime time.Time  `gorm:"type:datetime;not null;default:CURRENT_TIMESTAMP;comment:创建时间"`                                        // 创建时间，datetime 类型，非空，默认当前时间
	UpdateTime time.Time  `gorm:"type:datetime;not null;default:CURRENT_TIMESTAMP;onUpdate:CURRENT_TIMESTAMP;comment:更新时间，每次更新时自动更新时间"` // 更新时间，datetime 类型，非空，默认当前时间，每次更新时自动设置为当前时间
}

// TableName 设置 GORM 生成的表名
func (LwUser) TableName() string {
	return "lw_user"
}
